package com.liao.rent.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.liao.rent.dto.SysUserDto;
import com.liao.rent.entity.JsonResult;
import com.liao.rent.entity.SysUser;
import com.liao.rent.vo.LoginVo;

import java.util.List;

/**
 * <p>
 * 用户表 服务类
 * </p>
 *
 * @author liao
 * @since 2024-11-24
 */
public interface SysUserService extends IService<SysUser> {


    /**
     * 创建用户
     *
     * @return
     */
    Boolean createUser(SysUser user);

    /**
     * 登录认证
     */
    JsonResult login(LoginVo vo);


    /**
     * 退出登录
     */

    JsonResult logout();

    /**
     * 获取用户信息
     * @return 返回用户信息
     */
    JsonResult<SysUser> getUserInfo();

    /**
     * 获取用户列表
     * @return
     */
    JsonResult<Page<SysUserDto>> List(int page, int size, String name);


    /**
     * 管理员修改用户密码
     * @param userId
     * @param newPassword
     * @return 是否更新成功
     */
    public Boolean updatePasswordById(Integer userId, String newPassword) ;

    /**
     * 通过用户id修改用户角色id
     * @param roleId
     * @param userId
     * @return 是否更新成功
     */
    public Boolean updateRoleIdBYUserId(Integer userId,Integer roleId) ;

    /**
     * 通过用户id创建用户对应角色id
     * @param roleId
     * @param userId
     * @return 是否更新成功
     */
    public Boolean createRoleIdBYUserId(Integer userId,Integer roleId) ;

    /**
     * 通过用户id删除用户对应角色id
     * @param userId
     * @return 是否更新成功
     */
    public Boolean deleteRoleIdBYUserId(Integer userId) ;

    /**
     * 获取用户权限
     * @return
     */
    List<String> getUserAuthorities(Integer userId);
}
